package util;

import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.File; 
import java.io.OutputStream;
import java.util.Properties;


/**
 * @author Jimmy Sancchez
 *
 * Clase utilizada para cargar propiedades desde un archivo .properties 
 */
public class LoadProperties {
	private static Properties props=null;
	private static File f=null;  
	private static String msg=null;
	
	/**
	 * Constructor de la clase
	 */
	private static void loadProperties(String file){
		props = new Properties();//para cargar propiedades de un archivo 
		f = new File(file);
		String msg=null;	    	
		if (f.exists()) {
			try{			
				InputStream is =new BufferedInputStream(new FileInputStream(f));
				props.load(is);
				is.close();				
			}catch(Exception e){
				System.out.println("No se pudo leer el archivo de propiedades.");
			}     
		}//if
	}
        
        public static Properties loadPropertiess(String file){
		props = new Properties();//para cargar propiedades de un archivo 
		f = new File(file);
		String msg=null;	    	
		if (f.exists()) {
			try{			
				InputStream is =new BufferedInputStream(new FileInputStream(f));
				props.load(is);
				is.close();				
			}catch(Exception e){
				System.out.println("No se pudo leer el archivo de propiedades.");
			}     
		}//if
                return props;
	}	
        public static boolean storePropertiess(Properties prop,String file,String comentario){
		f = new File(file);
		//if (f.exists()) {
                try{			
                    OutputStream os =new BufferedOutputStream(new FileOutputStream(f));
                    prop.store(os,comentario);
                    os.close();
                }catch(Exception e){
                      System.out.println("No se pudo Guardar las propiedades.");
                      return false;
                }     
		//}//if
                return true;
	}	        
	/**
	 * Retorna el valor asociado al parametro "cadena" qeu se encuentra el archivo .properties
	 * @param cadena el nombre de la propiedad que se quiere cargar
	 * @return valor asociado al parametro "cadena"
	 */
	public static String getProperties(String file,String cadena){
		loadProperties(file);
		msg = props.getProperty(cadena);	     
		return msg;       
	}
}